Parte I : Aprendizado Supervisionado

Fundamentos do Aprendizado Estatístico

Aprendizado estatístico supervisionado

O problema fundamental

Considere uma amostra observada

\[ \mathcal D_n=\{(X_1,Y_1),\ldots,(X_n,Y_n)\} \]

A pergunta central é:

Como construir, a partir dos dados observados, uma função capaz de prever \(Y\) para uma nova observação \(X\)?

\[ \boxed{\text{Dados}}\longrightarrow \boxed{\text{Algoritmo}}\longrightarrow \boxed{\hat g(x)}\longrightarrow \boxed{\text{Predição}} \]

Programação tradicional vs. aprendizado de máquina



Programação tradicional

\[ \text{Entrada}+\text{Regras}\longrightarrow\text{Saída} \]

As regras são especificadas pelo programador.

Aprendizado de máquina

\[ \text{Entrada}+\text{Saída}\longrightarrow\text{Algoritmo}\longrightarrow\text{Modelo} \]

Parte das regras é aprendida a partir dos dados.

O que significa “aprender”?

Segundo a formulação clássica de Mitchell, um sistema aprende a partir de uma experiência \(E\), para uma tarefa \(T\), segundo uma medida de desempenho \(P\), quando seu desempenho melhora com a experiência.

Tarefa (\(T\))

Prever o preço de um imóvel.

Experiência (\(E\))

Histórico de imóveis observados.

Desempenho (\(P\))

RMSE em novas observações.

Diferentes tipos de aprendizado



Tipo Informação disponível Exemplos
Supervisionado \((X,Y)\) regressão, classificação
Não supervisionado \(X\) clustering, PCA
Por reforço estado, ação e recompensa decisões sequenciais

Nesta Parte I, estudaremos aprendizado supervisionado, tratando regressão e classificação em paralelo.

Aprendizado supervisionado

Notação

Dispomos de observações

\[ \mathcal D_n = \{(\mathbf X_1,Y_1),\ldots,(\mathbf X_n,Y_n)\} \]

em que

\[ \mathbf X_i\in\mathcal X \qquad\text{e}\qquad Y_i\in\mathcal Y \]

Queremos aprender uma função de decisão ou predição

\[ \boxed{ g:\mathcal X\rightarrow\mathcal A } \]

A forma de \(\mathcal Y\), a ação \(\mathcal A\) e a função de perda determinam o problema de aprendizado

Dois tipos de resposta

Regressão

\[ Y\in\mathbb R \] Resposta quantitativa

Classificação

\[ Y\in\{1,\ldots,K\} \] Resposta categórica

Predição vs. inferência

De modo geral, este problema pode ser dividido em dois objetivos principais.

Objetivo inferêncial

  • Quais variáveis estão associadas a \(Y\)?
  • Como \(Y\) muda quando \(X\) muda?
  • Qual estrutura explica os dados?

Objetivo preditivo

  • Qual será o valor de \(Y\) para uma nova observação?
  • O modelo generaliza para dados não vistos?
  • Qual modelo produz menor erro preditivo?

Duas culturas em modelagem estatística

@breiman2001twocultures descreve duas tradições complementares:

Data Modeling Culture

  • ênfase em inferência;
  • interpretação dos parâmetros;
  • suposições probabilísticas explícitas.

Algorithmic Modeling Culture

  • ênfase em predição;
  • desempenho em novos dados;
  • modelos potencialmente muito flexíveis.

Integração entre Estatística e Machine Learning

Machine Learning e Estatística não são opostos: são complementares.

Historicamente, as duas áreas enfatizaram objetivos diferentes:

  • Estatística: foco em inferência e interpretação dos modelos.
  • Machine Learning: foco em predição e desempenho em novos dados.

Tendência atual

Hoje muitos métodos modernos procuram combinar as duas culturas, buscando:

  • alto desempenho preditivo
  • interpretação dos modelos

Exemplos:

  • Random Forest interpretável
  • SHAP (Shapley Additive Explanations)
  • modelos semiparamétricos: GAM (Modelos aditivos generalizados), Modelo de Cox (riscos proporcionais), etc.

Interpretabilidade vs. Flexibilidade

Em modelagem estatística e aprendizado de máquina, frequentemente existe um trade-off entre interpretabilidade e flexibilidade.

  • Interpretabilidade: facilidade de compreender como o modelo toma decisões.
  • Flexibilidade: capacidade do modelo de capturar padrões complexos nos dados.

Interpretabilidade vs. Flexibilidade

\[ \text{Maior interpretabilidade} \quad\longleftrightarrow\quad \text{Maior flexibilidade} \]

Formulação do aprendizado estatístico

Buscamos aproximar a função de predição, que descreve a relação entre uma variável resposta \(Y \in \mathbb{R}\) e um vetor de covariáveis \(x\).

\[ \boxed{\hat g(x)\approx r(x)=\mathbb E[Y\mid X=x]} \]

Agora surge a pergunta:

Como definir matematicamente o que significa uma boa previsão?

Função de perda e função de risco

Quanto custa errar?

Suponha que o valor observado seja

\[ Y=80 \]

Dois modelos produzem

\[ \hat Y_A=79, \qquad \hat Y_B=65 \]

Precisamos de uma regra que atribua um custo ao erro de predição.

Função de perda

Uma função de perda é denotada por

\[ L(Y,g(X)) \]

Ela mede o custo associado à previsão \(g(X)\) quando o valor observado é \(Y\).

Perda quadrática

Uma escolha comum em problemas de regressão é a perda quadrática

\[ \boxed{L(Y,g(X))=(Y-g(X))^2} \]

Características:

  • penaliza erros grandes de forma acentuada;
  • está associada à média condicional;
  • conduz ao MSE/RMSE na avaliação empírica.

Perda absoluta

Além da perda quadrática, outras funções de perda podem ser utilizadas.

\[ \boxed{L(Y,g(X))=|Y-g(X)|} \]

Perda Preditor ótimo
quadrática média condicional
absoluta mediana condicional

A escolha da função de perda ajuda a determinar o que o algoritmo aprende.

Da perda ao risco

A perda avalia uma previsão. O risco avalia o desempenho médio do modelo em novas observações:

\[ \boxed{R(g)=\mathbb E[L(Y,g(X))]} \]

Ou seja, o risco corresponde ao valor esperado da função de perda.

A perda depende da tarefa

Regressão

\[ L(y,a)=(y-a)^2 \]

Classificação

\[ \boxed{L(y,a)=I\{y\neq a\}} \] Em ambos os casos \[ \boxed{R(g)=E[L(Y,g(X))]} \]

A perda depende da tarefa

O objetivo é encontrar uma função \(g\) que minimize o risco

\[ g^* = \arg\min_g \mathbb{E}[L(Y,g(\mathbf{x}))] \]

Em outras palavras, queremos um modelo que produza erros pequenos em média para novas observações.

Risco quadrático

Para regressão com perda quadrática,

\[ R(g) = E[(Y-g(X))^2] \]

o minimizador populacional é

\[ \boxed{ r(x)=E(Y\mid X=x) } \]

Esse resultado explica por que a média condicional é o alvo natural da regressão

Decomposição do erro

Uma forma comum de representar o problema é

\[ Y=r(X)+\varepsilon, \qquad E(\varepsilon\mid X)=0 \]

Podemos então medir o erro do modelo em relação à função verdadeira:

\[ \boxed{ R_{pred}(g) = E[(Y-\widehat g(X))^2] = E[(r(X)-\widehat g(X))^2] + E(\varepsilon^2) } \]

O primeiro termo depende do estimador

O segundo é o erro irredutível

O melhor modelo também erra

Mesmo que

\[ g^*(x)=r(x), \]

ainda teremos

\[ R(g^*)= E(\varepsilon^2) \]

Nem todo erro de predição é consequência de um modelo ruim.

Exemplo: preço de um imóvel

Suponha que o preço de um imóvel seja determinado por

\[ Y = r(X) + \varepsilon \]

onde:

  • \(X\) = área do imóvel
  • \(r(X)\) = preço médio esperado para imóveis com essa área
  • \(\varepsilon\) = fatores não observados: negociação, urgência da venda, estado de conservação etc.

Exemplo: preço de um imóvel

Para um imóvel de 100 m², suponha que

\[ r(100) = 500 \]

ou seja, o preço médio esperado é de R$ 500 mil.

Nosso modelo, porém, estima:

\[ \hat g(100) = 470 \]

Logo, o erro devido ao modelo é

\[ r(100)-\hat g(100)=500-470=30 \]

Exemplo: preço de um imóvel

Agora suponha que esse imóvel tenha sido vendido por R$ 520 mil:

\[ Y = 520 \]

Então,

\[ \varepsilon = Y-r(100)=520-500=20 \]

Assim, o erro total de predição é

\[ Y-\hat g(100) = \underbrace{r(100)-\hat g(100)}_{\text{erro do modelo}} + \underbrace{\varepsilon}_{\text{erro irredutível}} \]

\[ 520-470 = 30+20 = 50 \]

Exemplo: preço de um imóvel

Ideia principal

Mesmo que tivéssemos um modelo perfeito,

\[ \hat g(100)=r(100)=500, \]

ainda haveria erro:

\[ Y-\hat g(100)=520-500=20 \]

Esse componente corresponde ao erro irredutível.

O modelo estimado depende dos dados

Um algoritmo de aprendizagem pode ser representado por

\[ \mathcal D_n \overset{\mathcal A}{\longrightarrow} \hat g_{\mathcal D_n} \]

onde \(\mathcal{D}_n\) representa a amostra de treinamento (já observada).

Nesse caso, tratamos \(\hat{g}\) como fixa e avaliamos seu risco em uma nova observação \((X,Y)\):

\[ R(g) = E\left[(Y-\hat{g}(X))^2\right] \]

Esse risco é chamado de risco condicional.

O modelo estimado depende dos dados

Se mudarmos a amostra, podemos obter outro modelo:

\[ \mathcal D_1\to\hat g_1, \qquad \mathcal D_2\to\hat g_2, \qquad \mathcal D_3\to\hat g_3 \] Como \(\hat{g}\) depende da amostra, ele é uma função aleatória dos dados.

Nesse caso, podemos considerar a esperança também em relação à amostra de treinamento.

Assim, o risco esperado é a média do risco condicional sobre todas as possíveis amostras:

\[ E_{\mathcal{D}_n}\left[R\big(\hat{g}_{\mathcal{D}_n}\big)\right] \]

O modelo estimado depende dos dados

Assim,

\[ \text{Risco esperado} = E[\text{risco condicional}] \]

  • O risco condicional avalia o desempenho de um modelo específico, já ajustado.
  • O risco esperado avalia o desempenho médio do procedimento de aprendizado.

O modelo estimado depende dos dados

Ou seja:

  • risco condicional \(\rightarrow\) garantia sobre uma função \(g\) específica
  • risco esperado \(\rightarrow\) garantia sobre o algoritmo que constrói \(g\)

Essa ideia será fundamental para compreender variância do estimador.

Síntese

\[ \boxed{\text{Dados}} \rightarrow \boxed{\hat g} \rightarrow \boxed{L} \rightarrow \boxed{R(g)} \]

Mas há um problema:

\[ \boxed{R(g)\text{ é desconhecido}} \]

Como estimar o erro que o modelo terá em dados ainda não observados?

Generalização e seleção de modelos

Exemplo: PIB e expectativa de vida

Considere

  • \(X\): PIB per capita;
  • \(Y\): expectativa de vida.

Queremos estimar

\[ r(x)= E[Y\mid X=x] \]

Qual é a expectativa de vida média esperada para um país com PIB per capita igual a \(x\)?

R: PIB e expectativa de vida

Um modelo simples

A função de predição considerada é

\[ g(x) = \beta_0 + \sum_{i=1}^{p} \beta_i x^i \]

Pergunta:

O modelo é flexível o suficiente para representar a relação entre \(X\) e \(Y\)?

Três candidatos

Considere modelos polinomiais com

\[ p=1, \qquad p=4, \qquad p=50 \]

Sub-ajuste (underfitting)

Um modelo muito simples pode apresentar

\[ \text{alto viés} \quad\Rightarrow\quad \text{estrutura relevante não capturada} \]

Exemplo: polinômio de grau \(1\) quando a relação é fortemente não linear.

Super-ajuste (overfitting)

Um modelo excessivamente flexível pode ajustar características específicas da amostra:

\[ \text{erro de treino muito baixo} \quad\not\Rightarrow\quad \text{boa generalização} \]

O paradoxo do treinamento

Em geral, quando aumentamos a complexidade,

\[ \text{complexidade}\uparrow \quad\Rightarrow\quad \widehat R_{\text{treino}}\downarrow \]

Então por que não escolher sempre o modelo mais complexo?

Treino não é generalização

\[ \boxed{ \text{Bom ajuste aos dados observados} \neq \text{Boa predição em novos dados} } \]

Precisamos estimar o desempenho fora da amostra usada no ajuste.

Para isso, utilizamos um critério que permita avaliar a qualidade preditiva da função.

Neste contexto, usamos o risco quadrático para medir a qualidade do modelo \(R(g).\)

Queremos então escolher uma função \(g\) dentro de uma classe de candidatos \(\mathcal{G}\) que apresente baixo risco quadrático.

Objetivo prático

Ao selecionar um modelo, queremos evitar:

  • sub-ajuste (underfitting)
  • super-ajuste (overfitting)

Ou seja, buscamos um modelo com bom poder preditivo para novas observações.

Objetivo prático

Na prática, o valor de \(R(g)\) é desconhecido.

Por isso, precisamos estimar o risco para avaliar e comparar as funções \(g \in \mathcal{G}.\)

A questão central passa a ser:

Como estimar o risco de predição de um modelo?

Na próxima etapa, estudamos métodos para estimar esse risco e, assim, escolher o modelo mais adequado.

Risco observado

Uma forma natural de avaliar um modelo é medir seu erro nos dados de treinamento.

Esse erro é chamado de risco observado ou erro quadrático médio (EQM) no conjunto de treinamento:

\[ EQM(g) = \frac{1}{n}\sum_{i=1}^{n} (Y_i - \hat g(X_i))^2 \]

O risco observado é um estimador muito otimista do verdadeiro risco de predição.

Data splitting

Uma forma simples de estimar o risco de predição é dividir o conjunto de dados em duas partes:

\[ \boxed{\text{Treino}} \qquad \boxed{\text{Validação}} \]

  • Treino: estima os parâmetros do modelo;
  • Validação: estima o desempenho em dados não usados no ajuste.

Erro de validação

Para um conjunto de validação \(V\),

\[ \widehat R_{\text{val}}(g) = \frac{1}{|V|} \sum_{i\in V} (Y_i- \hat g(X_i))^2 \]

Como os dados de validação não foram usados para treinar o modelo, essa estimativa é mais próxima do verdadeiro erro de predição.

Complexidade: treino vs. validação

Com o aumento da complexidade:

  • erro de treinamento tende a diminuir;
  • erro de validação pode inicialmente diminuir e depois aumentar.

Ideia central: selecionar a complexidade pelo desempenho fora da amostra.

Problema: overfitting na validação

Se avaliarmos muitos modelos diferentes, podemos acabar escolhendo um modelo que se ajusta bem ao conjunto de validação por acaso.

Isso gera super-ajuste ao conjunto de validação.

Consequência:

  • o modelo escolhido pode ter bom desempenho na validação, mas não generalizar bem para novos dados.

Treinamento vs. Validação vs. Teste

Uma prática comum é dividir os dados em três partes:

  • Treinamento → ajustar os modelos
  • Validação → escolher o melhor modelo
  • Teste → avaliar o desempenho final

O conjunto de teste fornece uma estimativa do risco

\[ R(g) = E[(Y - \hat g(X))^2] \]

para novas observações. Assim podemos avaliar se o modelo escolhido realmente generaliza bem.

Treinamento vs. Validação vs. Teste

O conjunto de teste não deve participar das decisões de modelagem.

O problema de uma única divisão

Uma única divisão treino/validação:

  • depende da divisão aleatória escolhida;
  • utiliza apenas parte da amostra para treinamento;
  • pode produzir estimativas instáveis do desempenho.

Uma alternativa é a validação cruzada.

\(k\)-fold cross-validation

Dividimos os dados em \(k\) subconjuntos aproximadamente do mesmo tamanho:

\[ D=F_1\cup\cdots\cup F_k \]

Cada fold funciona uma vez como validação; os demais são usados para treinamento.

Estimativa do risco por CV

O estimador do risco via \(k\)-fold cross-validation é

\[ \widehat R_{CV} = \frac{1}{n} \sum_{j=1}^{k} \sum_{i\in F_j} \left(Y_i-\hat g_{-j}(X_i)\right)^2 \]

Aqui, \(\hat g_{-j}\) é ajustado sem usar as observações do fold \(F_j\).

Quando \(k = n\) cada fold contém apenas uma observação.

Nesse caso, temos o método Leave-One-Out Cross Validation (LOOCV)

Data leakage

Incorreto

\[ \text{Pré-processar todos os dados} \longrightarrow \text{CV} \]

Correto

\[ \text{Em cada fold:} \quad \text{estimar pré-processamento no treino} \longrightarrow \text{aplicar na validação} \]

Informação do conjunto de validação não deve influenciar o treinamento.

Intervalos de confiança para o risco

Depois de escolher o modelo usando treinamento e validação, utilizamos o conjunto de teste para estimar o risco verdadeiro do modelo.

O conjunto de teste não foi usado para ajustar o modelo.

Estimador do risco no conjunto de teste

Denote por \((\tilde{X}_1,\tilde Y_1),\ldots,(\tilde{X}_m,\tilde Y_m)\) as observações do conjunto de teste.

Um estimador do risco é

\[ \hat R(g) = \frac{1}{m} \sum_{k=1}^{m} (\tilde Y_k - g(\tilde{X}_k))^2 \]

Intervalos de confiança para o risco

Definimos

\[ W_k = (\tilde Y_k - g(\tilde{X}_k))^2, \qquad k = 1 \cdots m \]

Assim,

\[ \hat R(g) = \frac{1}{m}\sum_{k=1}^{m} W_k \]

Se as observações do conjunto de teste são i.i.d., então \(W_1,\ldots,W_m\) são variáveis aleatórias independentes e identicamente distribuídas.

Logo, \(\hat R(g)\) é simplesmente a média dessas variáveis.

Intervalos de confiança para o risco

Pelo Teorema Central do Limite,

\[ \hat R(g) \approx \mathcal{N} \left( R(g), \frac{1}{m}\,\mathrm{Var}(W) \right) \]

quando \(m\) é grande.

Na prática, estimamos \(\mathrm{Var}(W)\) pela variância amostral:

\[ \hat\sigma^2 = \frac{1}{m-1} \sum_{k=1}^{m} (W_k - \bar W)^2 \]

Intervalos de confiança para o risco

onde

\[ \bar W = \hat R(g) \]

Um intervalo de confiança aproximado de 95% é

\[ \hat R(g) \pm 1.96 \frac{\hat\sigma}{\sqrt{m}} \]

O intervalo de confiança fornece uma medida de incerteza da estimativa do risco. Isso permite avaliar:

  • se o erro estimado é confiável
  • se dois modelos possuem desempenho estatisticamente diferente

Síntese

\[ \boxed{ \text{Treinar} \neq \text{Selecionar} \neq \text{Avaliar} } \]

Como a complexidade do modelo afeta seu erro de generalização?

Complexidade, viés, variância e tuning

Por que modelos muito flexíveis são instáveis?

Imagine várias amostras independentes provenientes da mesma população.

Um modelo muito flexível pode produzir curvas bastante diferentes em cada amostra.

Essa sensibilidade aos dados é chamada variância.

O outro extremo: modelos simples

Modelos muito simples podem variar pouco entre amostras, mas errar sistematicamente a forma de \(r(x)\).

Esse erro sistemático é chamado viés.

Viés

Para um ponto \(x\),

\[ \operatorname{Bias}[\hat g(x)] = E[\hat g(x)]-r(x) \]

Interpretação:

quanto a previsão média do procedimento de aprendizagem se afasta sistematicamente da função verdadeira.

Variância

\[ \operatorname{Var}[\hat g(x)] \]

Interpretação:

quanto o modelo estimado muda quando utilizamos uma nova amostra de treinamento.

Decomposição viés–variância

Sob perda quadrática,

\[ \boxed{ E\left[(Y-\hat{g}(x))^2 \mid X=x\right] = \operatorname{Bias}^2\left[\hat{g}(x)\right] + \operatorname{Var}\left[\hat{g}(x)\right] + \sigma^2(x) } \]

Interpretação

Componente Significado
\(\operatorname{Bias}^2\left[\hat{g}(x)\right]\) erro sistemático
\(\operatorname{Var}\left[\hat{g}(x)\right]\) sensibilidade à amostra
\(\sigma^2(x)=\operatorname{Var}(Y\mid X=x)\) ruído irredutível

Trade-off viés–variância

Em geral,

\[ \text{complexidade}\uparrow \Rightarrow \begin{cases} \text{viés}\downarrow\\ \text{variância}\uparrow \end{cases} \]

O objetivo é encontrar um compromisso que minimize o erro de generalização.

Voltando aos polinômios

Modelo Viés Variância
grau \(1\) alto baixa
grau \(4\) moderado moderada
grau \(50\) baixo alta

O melhor modelo não é necessariamente o mais simples nem o mais flexível.

Parâmetro vs. hiperparâmetro

Parâmetros

Exemplo:

\[ \beta_0,\beta_1,\ldots,\beta_p \]

São estimados no conjunto de treinamento.

Hiperparâmetro

Exemplo:

\[ p=\text{grau do polinômio} \]

Controla a estrutura/complexidade e é escolhido por validação.

A mesma ideia aparecerá em todo o curso

Método Controle de complexidade
Regressão polinomial grau \(p\)
Ridge/Lasso \(\lambda\)
KNN \(k\)
Kernel bandwidth \(h\)
Árvore profundidade / poda
Random Forest mtry
Boosting profundidade, learning rate, nº de árvores,

Os algoritmos mudam; o problema estatístico de controlar a complexidade permanece.

Tuning

Se \(\theta\) representa um hiperparâmetro,

\[ \boxed{ \hat\theta = \arg\min_{\theta} \widehat R_{CV}(\theta) } \]

O ajuste de hiperparâmetros deve ser feito sem usar o conjunto de teste.

Cinco perguntas para o restante da disciplina

  1. Qual função queremos aprender?
    \[r(x)=\mathbb E[Y\mid X=x]\]

  2. Como medimos um erro?
    \[L(Y,g(X))\]

  3. Como medimos a qualidade de um modelo?
    \[R(g)=\mathbb E[L(Y,g(X))]\]

Cinco perguntas para o restante da disciplina

  1. Como estimamos o desempenho em novos dados?
    \[\text{Validação / cross-validation}\]

  2. Como controlamos a complexidade?
    \[\text{Tuning / regularização}\]